#define _CRT_SECURE_NO_WARNINGS 1
//#include "map.h"
//#include <map>
#include <iostream>
using namespace std;
#include "set.h"
template<class T>
class A
{
public:
	A()
	:_x(1)
	{}
	T _x;
};
template<class T>
class B
{
public:
	B()
	{}
	B(const B<T>& t)
	{

	}
	A<T> a;
	int b;
};

//int main()
//{
//	/*B<int> x;
//	B<const int> z;
//	B<const int> y(x);*/
//	//lnb::map<int, int> m;
//	//m.insert(make_pair(1, 2));
//	//m.insert(make_pair(2, 1));
//	//m.insert(make_pair(3, 2));
//	//m.insert(make_pair(34, 3));
//	//auto it = m.begin();
//	//while (it != m.end())
//	//{
//	//	cout << *(++(it)) << endl;
//	//	
//	//}
//	//lnb::set<int> s;
//	//s.insert(1);
//	//auto it = s.begin();
//	//*it = 1;
//
//	return 0;
//}
int main()
{
	//lnb::testmap();
	/*map<int, int> m;
	m.insert(make_pair(1, 1));
	m.insert(make_pair(4, 1));
	m.insert(make_pair(3, 1));
	m.insert(make_pair(2, 1));
	map<int, int>::iterator it = m.end();
	while (it != m.begin())
	{
		--it;
		cout << it->first << " ";
	}*/

	//lnb::testmap2();
	lnb::set<int> s;
	s.insert(2);
	s.insert(5);
	s.insert(1);
	s.insert(9);
	s.insert(4);
	s.insert(2);
	auto it = s.begin();
	while (it != s.end())
	{
		cout << *it << " ";
		++it;
	}

	return 0;
}